#ifndef __EditWindow_h_
#define __EditWindow_h_

#include <OISEvents.h>
#include <OISInputManager.h>
#include <OISKeyboard.h>
#include <OISMouse.h>

#include <OgreRoot.h>
#include <SdkTrays.h>

using namespace OgreBites;

class EditWindow
{
public:
	enum eActivityType {
							   Activity_Create,
							   Activity_Edit,
							   Activity_EditTerrain
							 };

	enum eObjectSelection {
							Object_BoxGroup,
							Object_Block1,
							Object_Block2,
							Object_Block3,
							Object_House1,
							Object_House2,
							Object_Tree1,
							Object_Tree2,
							Object_Lake1,
							Object_Lake2,
							Object_Lake3,
							Object_WaterEmitter
						  };

public:
	EditWindow(SdkTrayManager *mTrayMgr);
	~EditWindow(void);

	void show(void);
	void hide(void);
	void refresh(void);
	void showEmitterWindow(bool show);


	eActivityType getActivitySelection(void);
    eObjectSelection getObjectSelection(void);
	int getActorSelection(void);
	int getHolderActorSelection(void);
	int getEmitterSelection(void);

	void injectActorNames(Ogre::StringVector actorNames);
	void injectHolderActorNames(Ogre::StringVector holderActorNames);
	void injectEmitterNames(Ogre::StringVector emitterNames);


private:

	bool emitterWindowVisible;
	SdkTrayManager *mTrayMgr;
	Label *windowCaption;
	SelectMenu* mActivityMenu;
	SelectMenu* mObjectMenu;
	SelectMenu* mActorMenu;
	SelectMenu* mHolderActorMenu;
	Ogre::StringVector menuItemsActivities;
	Ogre::StringVector menuItemsObjects;
	Ogre::StringVector menuItemsActors;
	Ogre::StringVector menuItemsHolderActors;
	Label *helpText0;
	Label *helpText1;
	Label *helpText2;
	Label *helpText4;
	Label *helpText5;
	Button *mSaveButton;
	Button *mSaveCameraButton;
	Button *mResetButton;

	Label *subWindowCaption;
	SelectMenu* mEmitterMenu;
	Ogre::StringVector menuItemsEmitters;
	Label *helpText3;

};

#endif // #ifndef __EditWindow_h_
